package cn.ahaiahaixx.dp.abstractFactory;

public class Demo {
  public static void main(String[] args) {
    // 系统中的抽象工厂。jdbc框架
    // 由于jdbc是数据库链接层框架,java设计的时候无法完成细节
    // 比如怎么连接，怎么处理数据库语句，怎么取回结果等等...
    // jdbc就用了全部抽象类去定义，不提供任何实现
    // 将实现交托给具体的数据库厂商实现

    // 全部都是抽象不能创建
    Factory factory;
    Softwave softwave;
    Toy toy;
    // 通过工厂方法获得一个抽象方法
    factory = FactoryManager.getFactory("microsoft");
    // 其他抽象对象都是抽象工厂创建
    softwave = factory.makeSoft();
    toy = factory.makeToy();
    softwave.starup();
    softwave.shutdown();
    toy.play();
    System.out.println("========================");
    factory=FactoryManager.getFactory("sony");
    //其他抽象对象都是抽象工厂创建
    softwave = factory.makeSoft();
    toy = factory.makeToy();
    softwave.starup();
    softwave.shutdown();
    toy.play();
  }
}
